package com.epalmpay.commom;


import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.epalmpay.status.Rescode;
import com.epalmpay.dto.system.GroupModuleOutDTO;
import com.epalmpay.dto.system.ModuleInDTO;
import com.epalmpay.dto.system.ModuleListOutDTO;
import com.epalmpay.dto.system.ModuleOutDTO;
import com.epalmpay.entity.Module;
import com.epalmpay.service.management.IModuleService;
import com.epalmpay.util.PropertyCopyUtil;

@Controller
@RequestMapping(value="/manager/module")
public class ModuleController extends BaseController {
     
	@Resource  
    private IModuleService moduleService;  
	
	
	
	
	/**
	 * 通过大商户id查询模块信息
	 * 
	 */
	@RequestMapping(value="/moduleGroupId")
	@ResponseBody
	public ModuleListOutDTO  findByUsername(ModuleInDTO moduleInDTO){
		ModuleListOutDTO moduleListOutDTO=new ModuleListOutDTO();
		ArrayList<ModuleOutDTO> modelOutList=new ArrayList<ModuleOutDTO>();
		try {   
			moduleInDTO.setGroupId(moduleInDTO.getGroupId());
			List<Module> list=moduleService.listGroupId(moduleInDTO);
			for (int i = 0; i < list.size(); i++) {
				ModuleOutDTO moduleDto=new ModuleOutDTO();
				PropertyCopyUtil.copyPropertiesExclude(list.get(i),moduleDto,"groupModule");
				GroupModuleOutDTO groupModuleOutDTO=new GroupModuleOutDTO();
				groupModuleOutDTO.setModuleId(list.get(i).getGroupModule().getModuleId());
				moduleDto.setGroupModuleOutDTO(groupModuleOutDTO);
				modelOutList.add(moduleDto);
				moduleListOutDTO.setModuleOutDTO(modelOutList);
			}
			moduleListOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");
		} catch (Exception e) { 
			e.printStackTrace();
			moduleListOutDTO.setErrorCode(Rescode.FAIL, "处理出现异常");
		}
		return moduleListOutDTO;
	}
	
	
	/**
	 * 更改模块权限
	 * 
	 */
	@RequestMapping(value="/upModule")
	@ResponseBody
	public ModuleOutDTO  upModule(ModuleInDTO moduleInDTO){
		ModuleOutDTO moduleOutDTO=new ModuleOutDTO();
		try {   
			moduleService.edit(moduleInDTO);
			moduleOutDTO.setErrorCode(Rescode.SUCCESS, "处理成功");
		} catch (Exception e) { 
			e.printStackTrace(); 
			moduleOutDTO.setErrorCode(Rescode.FAIL, "处理出现异常");
		}
		return moduleOutDTO;
	}
	
	
	
	
	
}
